/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package inscripciones.modeloTablas;

import inscripciones.ModeloDAO.AbonoDAO;
import inscripciones.modelo.Abono;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.util.ArrayList;
import java.util.List;
import javax.swing.AbstractAction;
import javax.swing.AbstractCellEditor;
import javax.swing.JButton;
import javax.swing.JTable;

import javax.swing.table.TableCellEditor;
/**
 *
 * @author Dianita
 */
public class BotonCellEditor extends AbstractCellEditor implements TableCellEditor {

    private Component componente;
    List<Abono> listatc = new ArrayList<Abono>();
    String tabla;
    ModelTableFormaPago modelotabla;
    //ModelTableCandidatos modelotablacandidatos;
    JTable tablavista;
    String llamada;
    String tipo;
    String valor;
    Abono abono;
    List<Abono> abonos;
  

    public BotonCellEditor(ModelTableFormaPago modelo, JTable tabla, String llamada, String tipo, List<Abono> abonos) {
        this.modelotabla = modelo;
        this.tablavista = tabla;
        this.llamada = llamada;
        this.tipo = tipo;
        this.abonos = abonos;
    }

    
    @Override
    public Component getTableCellEditorComponent(final JTable table, final Object value, boolean isSelected, final int row, final int column) {

        if (llamada.equals("ABONOS")) {
            if (tipo.equals("NUEVO")) {
                JButton boton = null;
                if (value instanceof JButton) {
                    boton = (JButton) value;
                    boton.setAction(new AbstractAction() {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                            System.out.println("slected rw"+tablavista.getSelectedRow());
//                            System.out.println("tamaño lista "+ modelotabla.getLista());
                            abono = modelotabla.getLista().get(tablavista.getSelectedRow());
                            modelotabla.getLista().remove(abono);
                            tablavista.setModel(modelotabla);
                            modelotabla.tamanioColumnas(tablavista);
                            modelotabla.tamanioFilas(tablavista);

                        }
                    });
                }
                componente = boton;
                return boton;
            } else {
                JButton boton = null;
                if (value instanceof JButton) {
                    boton = (JButton) value;
                    boton.setAction(new AbstractAction() {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                            abono = modelotabla.getLista().get(tablavista.getSelectedRow());
                            abonos.remove(abono);
                            modelotabla.getLista().remove(abono);
                            AbonoDAO cdao = new AbonoDAO(abono);
                            try {
                                cdao.update();
                                cdao.remove();
                                new inscripciones.Utiles.Mensajes().StandarTick(null, "Eliminado Correctamente");
                            } catch (Exception ex) {
                            }
                            tablavista.setModel(modelotabla);
                            modelotabla.tamanioColumnas(tablavista);
                            modelotabla.tamanioFilas(tablavista);
                        }
                    });
                }
                componente = boton;
                return boton;
            }
        }
        return null;
    }

    @Override
    public Object getCellEditorValue() {
        return componente;
    }

    public String getTabla() {
        return tabla;
    }

    public void setTabla(String tabla) {
        this.tabla = tabla;
    }
}
